package com.aweqy.porcelain.controller;

import com.aweqy.porcelain.common.BaseResponse;
import com.aweqy.porcelain.common.ResultUtils;
import com.aweqy.porcelain.entity.KilnInfo;
import com.aweqy.porcelain.service.KilnInfoService;
import com.aweqy.porcelain.common.DeleteRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

/**
 * 窑口信息相关接口
 */
@RestController
@RequestMapping("/api/kilnInfo")
@CrossOrigin
public class KilnInfoController {
    @Autowired
    private KilnInfoService kilnInfoService;

    /**
     * 获取所有窑口信息
     * @return 所有窑口列表
     */
    @GetMapping("/list")
    public BaseResponse<List<KilnInfo>> list() {
        return ResultUtils.success(kilnInfoService.list());
    }

    /**
     * 根据ID获取窑口详情
     * @param id 窑口ID
     * @return 窑口详细信息
     */
    @GetMapping("/{id}")
    public BaseResponse<KilnInfo> getById(@PathVariable Integer id) {
        return ResultUtils.success(kilnInfoService.getById(id));
    }

    /**
     * 根据地区ID获取窑口列表
     * @param regionId 地区ID
     * @return 该地区的窑口列表
     */
    @GetMapping("/region/{regionId}")
    public BaseResponse<List<KilnInfo>> getByRegionId(@PathVariable Integer regionId) {
        return ResultUtils.success(kilnInfoService.getByRegionId(regionId));
    }

    /**
     * 根据朝代ID获取窑口列表
     * @param dynastyId 朝代ID
     * @return 该朝代的窑口列表
     */
    @GetMapping("/dynasty/{dynastyId}")
    public BaseResponse<List<KilnInfo>> getByDynastyId(@PathVariable Integer dynastyId) {
        return ResultUtils.success(kilnInfoService.getByDynastyId(dynastyId));
    }

    /**
     * 根据窑口类型ID获取窑口列表
     * @param typeId 窑口类型ID
     * @return 该类型的窑口列表
     */
    @GetMapping("/type/{typeId}")
    public BaseResponse<List<KilnInfo>> getByTypeId(@PathVariable Integer typeId) {
        return ResultUtils.success(kilnInfoService.getByTypeId(typeId));
    }

    /**
     * 新增窑口信息
     * @param entity 窑口实体
     * @return 是否新增成功
     */
    @PostMapping("/add")
    public BaseResponse<Boolean> add(@RequestBody KilnInfo entity) {
        return ResultUtils.success(kilnInfoService.save(entity));
    }

    /**
     * 更新窑口信息
     * @param entity 窑口实体
     * @return 是否更新成功
     */
    @PostMapping("/update")
    public BaseResponse<Boolean> update(@RequestBody KilnInfo entity) {
        return ResultUtils.success(kilnInfoService.updateById(entity));
    }

    /**
     * 删除窑口信息
     * @param request 删除请求，包含主键ID
     * @return 是否删除成功
     */
    @PostMapping("/delete")
    public BaseResponse<Boolean> delete(@RequestBody DeleteRequest request) {
        return ResultUtils.success(kilnInfoService.removeById(request.getId()));
    }
} 